package com.hzit.controller;

import com.hzit.service.IStudentService;
import com.hzit.util.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.annotation.Secured;
import org.springframework.security.access.prepost.PostAuthorize;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author wf
 * @since 2024-02-26
 */
@RestController
@RequestMapping("/student")
public class StudentController {
	@Autowired
	private IStudentService studentService;

	//1. 列表学生
	@GetMapping("/list")
	@Secured({"ROLE_user","ROLE_aaa"})     // 判断是否有指定的角色，角色名还是以ROLE_开头，可以有多个,只要有一个角色就可以访问相关资源！多个资源之间是或者关系
	public R list(){
		return R.ok(studentService.list());
	}
	//2. 添加学生
	//@PreAuthorize("hasAuthority('admin111')")          // 在调用方法前进行权限检查，如果没有相应的权限，则不能进入方法中！
	@GetMapping("/add")
	@PreAuthorize("hasAnyAuthority('admin111','user')")  // 只要有一个权限成立，就调用方法
	public R add(){
		System.out.println("stuent->add()");
		return R.ok(null,"添加学生!");
	}
	//3. 修改学生
	@GetMapping("/update")
	@PostAuthorize("hasAuthority('aaa')")           // 先执行方法，再判断是否有权限（一般用的较少）
	public R update(){
		System.out.println("student-->update()");
		return R.ok(null,"修改学生!");
	}
	//4. 删除学生
	@GetMapping("/delete")
	public R delete(){
		return R.ok(null,"删除学生!");
	}
}
